/********************************************************************
	created:	1/11/2005   2:15
	filename: 	BezierCamera.h
	author:		GMKal (exile79@gmail.com)
	
	purpose:	a camera class that flies from point to point following bezier 
				curves both for its position and view vectors

	last modified: 1/11/2005   2:19
*********************************************************************/



#pragma once

#include "camera.h"
//#include "BezierCurve.h" -- moved bezier curve to glmath.h


class BezierCamera : public Camera
{
public:
	BezierCamera(void);
	~BezierCamera(void);

	BezierCurve m_positionPath;
	BezierCurve m_viewPath;

	Vector3 m_targetPosition;
	Vector3 m_targetView;

	//float	m_posSpeed;
	//float	m_viewSpeed;

	double m_destDT;		// the amount of time that must pass before 
							// camera reaches her target
	double m_timeElapsed;	// time elapsed since last call to MoveTo()

	void MoveTo(const Vector3& newPos,const Vector3& newView,double desiredDT);
	void MoveTo(float px,float py,float pz,
			float vx,float vy,float vz,double desiredDT);

	bool Update(double dt);
};
